package com.chebaohui.iqs.service.impl.deal.util;

import java.text.SimpleDateFormat;
import java.util.Date;

import com.chebaohui.iqs.config.CompanyCode;

/**
 * 请求保险公司接口参数判断工具类
 * 
 * @author regas_xie
 *
 */
public class CompanyUtil {

	/**
	 * 厂牌处理
	 * 
	 * @param lableNo
	 * @return
	 */
	public static String labelNoDeal(String lableNo) {
		if (StringUtil.isNulls(lableNo))
			return lableNo;

		//lableNo = lableNo.replace("宝马", "");
		lableNo = lableNo.replace("牌", "");
		lableNo = lableNo.replaceAll("\\(.*\\)", "");
		return lableNo.trim();
	}

	/**
	 * 判断接口请求中保险公司编码是否在规则内
	 * 
	 * @param code
	 * @return
	 */
	public static CompanyCode dealCompany(String code) {
		if (StringUtil.isNulls(code))
			return null;
		for (CompanyCode i : CompanyCode.values()) {
			if (i.getCode().equals(code))
				return i;
		}
		return null;
	}

	/**
	 * 车架号判断
	 * 
	 * @param frameNo
	 *            车架号
	 * @return
	 */
	public static boolean valFrameNo(String frameNo) {
		if (StringUtil.isNulls(frameNo))
			return false;
		else
			return StringUtil.valFormat(frameNo, "^[A-Z0-9]{17}$");
	}

	/**
	 * 厂牌型号判断
	 * 
	 * @param lableNo
	 *            厂牌型号
	 * @return
	 */
	public static boolean valLableNo(String lableNo) {
		if (StringUtil.isNulls(lableNo))
			return false;
		else
			return lableNo.replace(" ", "").length() >= 2;
		// return StringUtil.valFormat(lableNo, "^[A-Z0-9\u4e00-\u9fa5]{2,}");
	}

	/**
	 * 发动机号判断
	 * 
	 * @return
	 */
	public static boolean valEngineNo(String engineNo) {
		if (StringUtil.isNulls(engineNo))
			return false;
		else
			return StringUtil.valFormat(engineNo, "^[A-Z0-9]{4,}");
	}

	/**
	 * 车牌号判断
	 * 
	 * @return
	 */
	public static boolean valLicenceNo(String licenceNo) {
		if (StringUtil.isNulls(licenceNo))
			return false;
		else
			return StringUtil.valFormat(licenceNo, "^渝[A-Z0-9]{6}$");
	}

	/**
	 * 姓名号判断
	 * 
	 * @return
	 */
	public static boolean valName(String name) {
		if (StringUtil.isNulls(name))
			return false;
		else
			return StringUtil.valFormat(name, "^[\u4e00-\u9fa5]{2,5}");
	}

	/**
	 * 时间判断
	 * 
	 * @return
	 */
	public static boolean valTime(String time) {
		if (StringUtil.isNulls(time))
			return false;
		try {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Date date = sdf.parse(time);
			return sdf.format(date).equals(time);
		} catch (Exception e) {
			return false;
		}
	}

}
